package com.lzh.farmersshop.controller.admin;


import com.lzh.farmersshop.util.Result;
import lombok.extern.slf4j.Slf4j;
import com.lzh.farmersshop.entity.Goods;
import com.lzh.farmersshop.service.GoodsService;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

/**
 * (Goods)表控制层
 *
 * @author makejava
 * @since 2024-01-04 15:41:50
 */
@Slf4j
@RestController
@RequestMapping("admin/goods")
@Transactional(rollbackFor = Exception.class)
public class GoodsController {
    /**
     * 服务对象
     */
    @Resource
    private GoodsService goodsService;

    /**
     * 分页查询所有数据
     *
     * @param goods 查询实体
     * @return 所有数据
     */
    @GetMapping("selectAll")
    public Result selectAll(Goods goods,Integer page,Integer limit) {
        if (limit == null || page == null) {
            return Result.failure("limit和page不能为空");
        }
        return goodsService.selectAll(goods, page, limit);
    }

    /**
     * 通过主键查询单条数据
     *
     * @param id 主键
     * @return 单条数据
     */
    @GetMapping("selectOne")
    public Result selectOne(Integer id) {
        return Result.success(goodsService.getById(id));
    }

    /**
     * 新增数据
     *
     * @param goods 实体对象
     * @return 新增结果
     */
    @PostMapping("add")
    public Result insert(Goods goods) {
        System.err.println(goods);
        if (goods==null){
            return Result.failure("商品信息不能为空");
        }

        goods.setIsdelete(1);
        //保存
        if (goodsService.save(goods)){
            return Result.success("添加成功");
        }
        return Result.failure("添加失败");
    }

    /**
     * 修改数据
     *
     * @param goods 实体对象
     * @return 修改结果
     */
    @PostMapping("update")
    public Result update(Goods goods) {
        if (goods==null){
            return Result.failure("商品信息不能为空");
        }

        //修改
        if (goodsService.updateById(goods)){
            return Result.success("修改成功");
        }
        return Result.failure("修改失败");
    }

    /**
     * 删除数据
     *
     * @param id 主键结合
     * @return 删除结果
     */
    @PostMapping("delete")
    public Result delete(Integer id) {
        if (id==null){
            return Result.failure("商品id不能为空");
        }

        Goods goods = new Goods();
        goods.setId(id);
        goods.setIsdelete(2);

        if (goodsService.removeById(goods)){
            return Result.success("删除成功");
        }
        return Result.failure("删除失败");
    }
}

